1. Field of the Invention
The present invention relates to rotating media storage devices (RMSDs). More particularly, the present invention relates to an RMSD that adaptively modifies pre-read operations in order to optimize data throughput.
2. Description of the Prior Art and Related Information
Computer systems rely on rotating media storage devices (RMSDs), which often employ a moveable head actuator to frequently access large amounts of data stored on the media. One example of an RMSD is a hard disk drive. One critical aspect of designing a RMSD in an extremely competitive market is its performance, typically measured by benchmark programs. The benchmark programs measure, among other things, the time required to perform a series of data transfer commands such as read commands. The time required to execute a given command is dependent on several factors including mechanical latency, cache size, and the efficiency of cache management.
One key aspect of mechanical latency in a RMSD is media rotational speed. In a competitive environment, products such as disk drives at a comparable price point offer comparable rotational speeds. Another aspect of mechanical latency is seek time, which generally measures the time required to move a head actuator from a current position to a target position. The seek time is determined by the mechanical characteristics of the head actuator, sometimes termed head stack assembly, and a seek profile which defines, during the time the actuator is accelerated and decelerated en route to the target position, an instantaneous desired velocity or acceleration/deceleration designed to achieve an efficient and predictable arrival of the head supported by the actuator over the target position on the media. Disk drive makers work diligently to improve the mechanics of the head stack assembly and the seek profile used to manage the seek operation. Nevertheless, disk drives at comparable price points tend to exhibit similar seek time characteristics.
In an effort to overcome limitations imposed by mechanical latency, disk drives have employed cache memory to reduce command execution time by providing host computer requested data from a cache memory, rather than from the disk directly. This technique is useful because oftentimes requested data is data that is repetitive or sequential with previously requested data. The disk drive, having anticipated such requests, is able to furnish data from a semiconductor memory and thus avoids mechanical latency. The process of reading data which is sequential with host requested data may involve reading data which precedes the host-requested data (pre-read) and data which follows the host-requested data (post-read). Utilizing these types of read caching algorithms improves data throughput.
However, in today's pre-read caching schemes, the pre-read data is initially treated as desired pre-read data and once it is determined that it is accessible to be read it becomes committed pre-read data. Unfortunately, during a seek to read operation, if the head has not settled on the committed pre-readable sectors in time (such that the pre-read data can be read), a full rotation of the disk is required so that the head can return to read the committed pre-read data.
Looking at FIG. 1A, FIG. 1A shows an example of a standard read caching algorithm having committed pre-read data that is in common use today. Data 10 is read along Track-1 and a seek command to Track-2 to read data is received at point 12. Consequent to this event, the time to seek to the second track is calculated. The read caching algorithm typically performs a post-read 14 along Track-1 and a seek is initiated at point 13. Line 15 illustrates the moveable head of the RMSD moving from Track-1 to Track-2. Particularly, as line 15 illustrates, the moveable head seeks and settles to Track-2. A read condition is then met such that the seek and settle operation is complete and an on-track condition is declared at point 16. The read caching algorithm then typically performs a pre-read 17 on Track-2 and then further proceeds to read the desired read data 18. As previously discussed, by performing the post-read 14 and further the pre-read 17, and reading this data into semiconductor memory, the overall data throughput can be improved.
Turning now to FIG. 1B, FIG. 1B shows another example of a standard read caching algorithm having committed pre-read data that is in common use today. However, this example shows a typical variation in which there is a scheduled pre-read data segment that is forecasted, upon which the reading of the committed pre-read data is to start. Again, data 10 is read along Track-1 and a seek command to Track-2 to read data is received at point 12. Consequent to this event, the time to seek to the second track is calculated. The read caching algorithm typically performs a post-read 14 along Track-1 and a seek is initiated at point 13. Line 15 illustrates the moveable head of the RMSD moving from Track-1 to Track-2. Particularly, as line 15 illustrates, the moveable head seeks and settles Track-2. A read condition is then met such that the seek and settle operation is complete and then an on-track condition is declared at point 16. As can be seen in FIG. 1B, the seek is complete at point 16, before the scheduled pre-read data segment 21, such that reading can begin at the forecasted scheduled pre-read data segment 21. The read caching algorithm then typically performs a pre-read 17 on Track-2 starting at the scheduled pre-read data segment 21 and then further proceeds to read the desired read data 18.
However, even in the previously described scheduled pre-read data segment case, the committed pre-read data is still required to be read and if the head has not settled on the committed pre-read data by the scheduled pre-read data segment point, then a full rotation of the disk has to pass so that the head can eventually return to read the committed pre-read data. As previously discussed, caching data before the desired target read data, utilizing a pre-read, can help drive performance—especially in competitive drive performance tests. However, making the pre-read mandatory often backfires because sometimes longer than expected settling times occur. Unfortunately, when this occurs, and the head has not fully settled on the track when the targeted pre-read data arrives (e.g. scheduled pre-read data segment 21), then the drive has to wait for an additional disk rotation so that the head can return to settle on the committed pre-read data segment. This has the deleterious effect of slowing down the drive performance.
An example of this is shown in FIG. 1C. Referring now to FIG. 1C, FIG. 1C shows yet another example of a standard read caching algorithm having committed pre-read data that is in common use today and further shows a missed scheduled pre-read data segment resulting in a wasted disk revolution. Here, data 10 is read along Track-1 and a seek command to Track-2 to read data is received at point 12. Consequent to this event, the time to seek to the second track is calculated. The read caching algorithm typically performs a post-read 14 along Track-1 and a seek is initiated at point 13 based on the calculated time to seek to the second track. Line 15 illustrates the moveable head of the RMSD moving from Track-1 to Track-2.
However, as is often the case, the moveable head does not settle on the required Track-2 until point 16 (at which point reading can begin), which is after the scheduled pre-read data segment 21. Thus, an on-track condition is not met until after the forecasted scheduled pre-read data segment 21. Unfortunately, the missed data of the committed pre-read portion 17 still needs to be read and the disk of the RMSD must perform another revolution to capture the missed committed pre-read data. This results in an entirely wasted revolution of the disk and seriously degrades the data throughput of the RMSD.